


n=11389185613731583486383199525602431783262384586907449259158667125101268117001826990861023791098108357076435092157935949651755483503495768004708222083350846087552230116611314899600968871996411543785756966858417854289959345758726434566715514275684801662504018743646010573094021017704339266567692389168215909223883725591221106797111944501025148480781125332327290243676264195982358885206223307092256320959647025221342281618881507946591557517260449436338543866789229738493088744602710250041031994810800882252733911160823705035998458372890289466863916735870397675129507185430205649331905288256978774444407919729170241797883
c=3275911274649654367733091487606705802465217638738450946505241068882252730173268991164330487407418769115644904927625236133787747059899876351508940471384549482921209418463410124415589376452756966807331741207464574765025659496795465179052454510389798859795044572590429224794462207781927369368769088047215609667583082933557309355227063474960628761665284247931290304587586562241903094688180665110932421174060293470626416170434557331537881270997711940971555236592973308710705389322377954903257663375846861651509985909253034532498596220546427946672919108352569609225798197030908465178862255454887008616545148644954656084875
h=792360451151986494611635888343584794959815418897689596006719046961521908275982556924794898243616938945145678201406967442532585798211777308677981428408744470411490763209425933066886314060504849364709110602646974951242753098983969431158605456257927625722094275639122572508628618221734239166998371441100789925451984422193294730678545583967290543587810207950177506904842954671283915265814250082542003387249931496192555087474928883458794273572149736834259149938740353741201374454501807357374538131624843922860650258254690373941584987754183886299140725753030478252908507621651836688885784061944264219643507752010019856541

e = 65537
b=2023
import libnum

#p=gcd(2023^n%n-h,n)
p=libnum.gcd(pow(2023,n,n)-h,n)
print(p)
q=n//p
print(n==p*q)

phi=(p-1)*(q-1)

#d=pow(e,-1,phi)
d=libnum.invmod(e,phi)
m=pow(c,d,n)
print(m)
print(libnum.n2s(m))